package com.homework;

import java.util.ArrayList;
import java.util.Objects;

public class homework7 {
    /*
    分析以下需求，并用代码实现
		定义MyArrays类，该类中有以下方法，方法描述如下：
		1.public static void reverse(ArrayList<Integer> list);
			参数ArrayList<Integer> list:要进行操作的集合对象
			要求：对list集合对象中的元素进行反转(第一个和最后一个交换，第二个和倒数第二个交换，第三个和倒数第三个交换...)
		2.public static Integer max(ArrayList<Integer> list);
			参数ArrayList<Integer> list:要进行操作的集合对象
			要求：求出list集合对象中的最大值并返回
		3.public static Integer min(ArrayList<Integer> list);
			参数ArrayList<Integer> list:要进行操作的集合对象
			要求：求出list集合对象中的最小值并返回
		4.public static int indexOf(ArrayList<Integer> list,Integer i);
			参数ArrayList<Integer> list:要进行操作的集合对象
			参数Integer i:需要在集合中查找的元素
			要求：求出元素i在list集合中第一次出现的索引，如果没有返回-1
		5.public static void replaceAll(ArrayList<Integer> list,Integer oldValue,Integer newValue);
			参数ArrayList<Integer> list:要进行操作的集合对象
			参数Integer oldValue:需要被替换掉的原值
			参数Integer newValue：替换后的新值
			要求：将list集合中的所有值为oldValue的元素替换为newValue
     */
    public static void main(String[] args) {
        ArrayList<Integer> integerArrayList = new ArrayList<>();
        integerArrayList.add(10);
        integerArrayList.add(20);
        integerArrayList.add(30);
        integerArrayList.add(40);
        integerArrayList.add(50);
        integerArrayList.add(30);
        MyArrays.reverse(integerArrayList);
        Integer max = MyArrays.max(integerArrayList);
        System.out.println("max = " + max);
        Integer min = MyArrays.min(integerArrayList);
        System.out.println("min = " + min);
        int indexOf = MyArrays.indexOf(integerArrayList, 30);
        System.out.println("indexOf = " + indexOf);
        MyArrays.replaceAll(integerArrayList,30,40);
    }

}
class MyArrays{
    public static void reverse(ArrayList<Integer> list){
        for (int i = 0; i < list.size()/2; i++) {
            Integer temp = list.get(i);
            list.set(i,list.get(list.size()-1-i));
            list.set(list.size()-1-i,temp);
        }
        System.out.println(list);
    }
    public static Integer max(ArrayList<Integer> list){
        Integer max = list.get(0);
        for (Integer l : list) {
            if (l > max){
                max = l;
            }
        }
        return max;
    }
    public static Integer min(ArrayList<Integer> list){
        Integer min = list.get(0);
        for (Integer l : list) {
            if (l < min){
                min = l;
            }
        }
        return min;
    }
    public static int indexOf(ArrayList<Integer> list,Integer i){
        int index = -1;
        for (int indexOf = 0; indexOf < list.size(); indexOf++) {
            if (i.equals(list.get(indexOf))){
                index = indexOf;
            }
        }
        return index;
    }
    public static void replaceAll(ArrayList<Integer> list,Integer oldValue,Integer newValue){
        for (int indexOf = 0; indexOf < list.size(); indexOf++) {
            if (oldValue.equals(list.get(indexOf))){
                list.set(indexOf,newValue);
            }
        }
        System.out.println(list);
    }
}